JBoss Community Archive (Read Only)

Teiid 8.12

Infinispan Data Sources

Infinispan data sources use a Teiid specific JCA connector that is deployed into AS 7.5 (EAP 6.4 Alpha) during installation. This connector can be configured to support the following modes of Infinispan caches:

Cache Type

Obtain Cache By

Local Cache

using JNDI

Local Cache

using configuration file (deprecated)

Remote Cache

using JNDI

Remote Cache

specify 1 or more host:port's

Remote Cache

specify HotRod client properties file

The use of this resource adapter only provides Key Search capabilities on remote caches. If your Infinispan/JDG remote cache has configured using Protobuffers, then it is recommended that you use the Infinispan-DSL Data Sources resource adapter when accessing an Infinispan/JDG remote cache. That will enable the DSL searching capabilities.

Configuration

Pojo Jar

The pojo class is the object that will be used to store the data in the cache. It should be built accordingly:

  • To take advantage of the cache being indexed enabled, should annotate the class. See JDG documentation

  • The class should be packaged into a jar so that it can be deployed as a module

To configure the use of the pojo, do the following:

  • Deploy the pojo jar as a module in the jboss-as server. Then define the "lib" property in the -vdb.xml and assign the correct module name. This can be done using the following template:
    <property name ="lib" value ="{pojo_module_name}"></property>

  • The JDG commons module, org.infinispan.commons, slot="jdg-6.x" or slot for version installed, needs to have the pojo dependency added:
    <module name="{pojo_module_name}" export="true" />

Read and Write to the Cache

The following are the configuration properties that can be configured for this connector:

Property Name

Req.

Property Template

Description

CacheTypeMap

Y

cacheName:className[;pkFieldName[:cacheKeyJavaType]]

Map the root Java Object class name to the cache, and identify which attribute is the primary key to the cache. Provide the cacheKeyJavaType when the key type is different than the pkFieldName attribute type

module

N

 

Specify the JBoss AS module that contains the cache classes that were defined in CacheTypeMap.

CacheJndiName

N

 

JNDI name to fine the CacheContainer

RemoteServerList

N

host:port[;host:port….]

Specify the host and ports that will be clustered together to access the caches defined in CacheTypeMap

ConfigurationFileNameForLocalCache

N

 

The Infinispan Configuration xml file for configuring a local cache

HotRodClientPropertiesFile

N

 

The HotRod properties file for configuring a connection to a remote cache

Using Cache for External Materialization

The following are the additional properties that need to be configured if using the Remote Cache for external materialization

Property Name

Req.

Description

StagingCacheName

Y

Cache name for the staging cache used in materialization

AliasCacheName

Y

Cache name for the alias cache used in tracking aliasing of the caches used in materialization

There are many ways to create the data source, using CLI, AdminShell, admin-console etc. The example shown below uses the CLI tool, as this works in both Standalone and Domain modes.

Execute following command using CLI once you connected to the Server. Make sure you provide the correct directory name and other properties below. Add any additional properties required by the connector by duplicating the "connection-definitions" command below. Edit the JNDI name to match the JNDI name you used in VDB.

batch
/subsystem=resource-adapters/resource-adapter=infinispan/connection-definitions=infinispanDS:add(jndi-name=java:/infinispanDS, class-name=org.teiid.resource.adapter.infinispan.InfinispanManagedConnectionFactory, enabled=true, use-java-context=true)
/subsystem=resource-adapters/resource-adapter=infinispan/connection-definitions=infinispanDS/config-properties=CacheTypeMap:add(value=trades:org.somewhere.Trade;tradeId)
/subsystem=resource-adapters/resource-adapter=infinispan/connection-definitions=infinispanDS/config-properties=Module:add(value=org.somewhere)
/subsystem=resource-adapters/resource-adapter=infinispan/connection-definitions=infinispanDS/config-properties=CacheJndiName:add(value=java:/myCache)
runbatch

To find out all the properties that are supported by this Infinispan Connector execute the following command in the CLI.

/subsystem=teiid:read-rar-description(rar-name=infinispan)
Developer's Tip

If the JBoss AS 7.5 (EAP 6.4 Alpha) is running in standalone mode, you can also manually edit the "<jboss-install>/standalone/configuration/standalone-teiid.xml" file and add the XML configuration defined in "<jboss-install>/docs/teiid/datasources/infinispan" directory under "resource-adapters" subsystem. Shutdown the server before you edit this file, and restart after the modifications are done.

Avoid Classloading Issues: If you are using a servlet or other type of web application to create the DefaultCacheManager for the cache, be sure not to include the Infinispan jar dependencies in the application, but add their module dependencies.

JBoss.org Content Archive (Read Only), exported from JBoss Community Documentation Editor at 2020-03-13 12:24:54 UTC, last content change 2016-03-24 15:09:01 UTC.